iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
Modern Web

CSS的預處理器-SASS/SCSS系列 第 10

DAY 10.SASS/SCSS中混入與函數的差異

  • 分享至 

  • xImage
  •  

在SASS/SCSS中,混入(mixin)和函數(function)是兩個重要的工具,幫助開發者更有效率地管理樣式,提升程式碼的可重複性與維護性。雖然兩者看起來功能很像,但實際上有不同的應用場景和目的。上面兩章已經介紹了混入簡單的功用,他讓程式碼更精簡化、更好閱讀,現在來介紹函數。

一、函數(Function)

函數在SASS/SCSS中的主要功能是返回一個值。這些值可以是數值(如px、em、rem)、顏色或其他類型的數據。函數通常用來執行數學運算、顏色操作、字串操作等,並且會在樣式中返回一個具體的結果。這些結果會直接嵌入到CSS屬性中,而不會生成任何其他CSS代碼。以下有簡單的範例。

@function calculate-average($a, $b) {
  @return (($a + $b) / 2);
}

.example {
  width: calculate-average(10px, 20px);  // 15px
}

計算平均值,calculate-average函數返回15px,並將這個值應用到.example的width屬性上。

函數的應用場景:

1.數值運算(如上方範例):

例如計算比例、字體大小或距離值。

2.顏色處理:

像是混合兩種顏色、調整顏色亮度或飽和度。

3.字串處理:

組合不同的字串來創造自訂的類名或屬性值。

總結來說,函數的作用主要在於計算和返回單一值,且不會產生任何額外的CSS樣式!

二、混入與函數的區別:

1.返回結果的類型:

混入:生成一段完整的 CSS 樣式,可以包含多個屬性和多行代碼。
函數:返回一個具體的值,如數值、顏色或字串,不會生成額外的 CSS 樣式。

2.適用場景:

混入:適合處理樣式重複、樣式邏輯複用,特別是包含多個屬性和動態變化的情況。
函數:適合數值或顏色等計算,返回單一結果,且該結果通常用於單一的 CSS 屬性。

3.代碼插入方式:

混入:會生成並插入多行 CSS 代碼。
函數:只會將計算結果插入到 CSS 中,沒有多餘的代碼生成。

三、如何選擇使用?

當你需要返回一個單一值時,使用函數:

函數的目的是做數學運算、顏色處理等...簡單的邏輯計算,並返回具體值供樣式使用。如果你只需要返回一個值,且不需要生成多行樣式,函數是比較好的選擇。

當你需要重複使用多個 CSS 屬性時,使用混入:

如果你要重複使用一段包含多個屬性的 CSS 樣式,尤其是涉及到樣式邏輯的地方,混入是首選。它可以幫助你生成多行的樣式代碼,並且可根據參數動態變化。

這樣講解,很好分辨吧!

/images/emoticon/emoticon71.gif祝福各位中秋節愉快,多吃烤肉


上一篇
DAY 9.SASS與SCSS的參數化混入 (Parameterized Mixins)
下一篇
DAY 11.SASS/SCSS繼承 (Inheritance) 的應用
系列文
CSS的預處理器-SASS/SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言